home *** CD-ROM | disk | FTP | other *** search
- Frequently Asked Questions (FAQS);faqs.104
-
-
-
- Chapter 10 is on user interfaces: it describes and illustrates
- the Smalltalk MVC paradigm (also: InterViews)
-
- --
- Raimund K. Ege School of Computer Science
- Florida Int'l University
- ege@scs.fiu.edu (305) 348-3381 University Park
- ege@servax.bitnet FAX (305) 348-3549 Miami, FL 33199
-
- **
-
- From: asmundvn@dcs.glasgow.ac.uk (Nils Erik Asmundvaag)
- Newsgroups: comp.lang.smalltalk
- Subject: Re: MVC -- good introductions?
- Date: 11 Mar 92 10:56:38 GMT
- Organization: Glasgow University Computing Science Dept.
-
- The book
-
- Smalltalk-80: A Practical Introduction
- (ISBN 0-273-03105-8)
-
- by Philip D. Gray & Ramzan Mohamed, 1990
- and published by Pitman (at least in the UK)
-
- contains two chapters on interactive applications and the MVC.
-
- I found it very helpful when first learning about the MVC.
-
- Nils E. Asmundvaag
-
- --
- -------------------------------------------------------------------------------
- Nils Erik Asmundvaag
- University of Glasgow, Scotland
- asmundvn@dcs.glasgow.ac.uk asmundvn@uk.ac.glasgow.dcs
-
-
- **
-
- From: bruce@utafll.uta.edu (Bruce Samuelson)
- Newsgroups: comp.lang.smalltalk
- Subject: Re: how are st80 views and controllers used?
- Date: 12 Mar 92 14:12:48 GMT
- Organization: UTexas at Arlington, Linguistics
-
- There are two papers on MVC that provide an introductory overview of
- the pre-version 4.0 ST80 scheme. Much of what's in them also applies
- to version 4.0. I understand that one of PPS's priorities in the
- forthcoming version 4.1 will be improved documentation. We'll see how
- well they explain the new windowing scheme launched in version 4.0.
- It would certainly be helpful to get an overview of what's going on
- before plunging into the source code of the myriad new classes.
-
- (1) A Cookbook for using the Model-View-Controller User Interface
- Paradigm in Smalltalk-80 by Glenn E. Krasner and Stephen T. Pope,
- ParcPlace Systems, copyright 1988.
-
- (2) Applications Programming in Smalltalk-80: How to Use
- Model-View-Controller (MVC) by Steve Burbeck, Softsmarts, Inc.,
- copyright 1987.
-
- The first paper may still be in print. Try info@parcplace.com.
-
- The second paper is probably no longer available. I think Softsmarts
- is the company that used to sell a version of Smalltalk for 80286
- machines but went out of business some years ago. The phone number on
- the paper is listed as 415-327-8100 (Palo Alto, California). You may
- try asking ParcPlace (or, less likely, Digitalk) if they have copies
- of Burbeck's paper.
-
- --
- **********************************************************
- * Bruce Samuelson Department of Linguistics *
- * bruce@ling.uta.edu University of Texas at Arlington *
- **********************************************************
-
-
- ---
-
- 3.2) Is there a Smalltalk bibliography?
-
- Answer:
-
- There are many... here is one:
-
- From: schultz@grebyn.com (Ronald Schultz)
- Newsgroups: comp.lang.smalltalk
- Subject: Smalltalk Relevant Texts
- Date: 10 Jan 92 16:08:05 GMT
- Organization: Grebyn Timesharing
-
-
- A list of Smalltalk-relevant texts. Retrieved from the Digitalk
- forum on Compuserve. If you know of any additional texts, please
- let me know. Thanx.
-
-
- ==========================================================================
- Ron Schultz
- Berard Software Engineering, Inc.
- Columbus Ohio Office Headquarters
- 5634 Claire Court 301 Lakeforest Drive
- Dublin, Ohio 43017 Gaithersburg, Md. 20877
- Phone (614) 798-0295 (301) 417-9885
- FAX (614) 798-0296 (301) 417-0021
- =========================================================================
-
- Smalltalk 80 The Language, Adele Goldberg & David Robson
- Addison-Wesley 1989 ISBN 0-201-13688-0
-
- Smalltalk 80 The Interactive Programming Environment, Adele Goldberg
- Addison Wesley 1984 ISBN 0-201-11372-4
-
- Smalltalk 80 Bits of History, Words of Advice , Glenn Krasner
- Addison Wesley 1984 ISBN 0-201-11669-3
-
- Inside Smalltalk Volume I, Wilf Lalonde & John Pugh
- Prentice Hall 1991 ISBN 0-13-468414-1
-
- Inside Smalltalk Volume II, Wilf Lalonde & John Pugh
- Prentice Hall 1991 ISBN 0-13-465964-3
-
- Object-Oriented Graphics, P. Wisskirchen
- Springer-Verlag 1990 ISBN 3-540-52859-8
-
- Practical Smalltalk: Using Smalltalk/V, Dan Shafer and Dean A. Ritz.
- Springer-Verlag ISBN 0-387-97394-X
-
- Rapid Prototyping for Object Oriented Systems, Mark Mullen
- Addison Wesley 1990 ISBN 0-201-55024-5
-
- Object-Oriented Design, Peter Coad and Ed Yourdon
- Yourdon Press 1991 ISBN 0-13-630070-7
-
- Object Oriented Programming for Artificial Intelligence, Ernest Tello
- Addison Wesley 1989 ISBN 0-201-09228-x
-
- The Well Tempered Object, Stephen Travis Pope
- MIT Press 1991 ISBN 0-262-16126-5
-
- RefTalk/Vwin, David Carl O'Neal
- NuVista Press 1991 ISBN pending
-
- Human-Computer Interface Design Guidelines, C. Marlin Brown
- Ablex Publishing 1989 ISBN 0-89391-332-4
-
- Designing Object-Oriented Software,
- Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener
- Prentice-Hall 1990 ISBN 0-13-629825-7
-
- Object Oriented Programming with Smalltalk/V, Dusko Savic
- Ellis Horwood 1990 ISBN 0-13-040692-9
-
- An Introduction to Object Oriented Programming & Smalltalk
- Lewis Pinson & Richard Wiener
- Addison Wesley 1988 ISBN 0-201-19127-x
-
- SAA Common User Access Advanced Interface Design Guide
- IBM 1989 IBM Document # SC26-4582-0
-
- IBM Red Books----(available from your IBM representative
- contact your local office of IBM and request
- the placing of an IBM Red Book Order. If you
- are an IBM customer, the books are free. If you
- are not an IBM customer, the books may have a nominal
- fee.)----
-
- A Practical Introduction to Object Oriented Programming
- IBM 1990 IBM Document # GG24-3641
-
- Object Oriented Design - A preliminary Approach
- IBM 1990 IBM Document # GG24-3647
-
- Developing a CUA Workplace Application
- IBM 1990 IBM Document # GG24-3580-00
-
- Managing the Development of Object Oriented Applications
- IBM 1990 IBM Document # GG24-3581-00
-
- Object Oriented Analysis of the ITSO Common Scenario
- IBM 1990 IBM Document # GG24-3566
-
- CUA Evaluation
- IBM 1990 IBM Document # GG24-3456
-
- SAA CUA '91 Guide
- IBM 1991 IBM Document # SC34-4289
-
- SAA CUA '91 Reference
- IBM 1991 IBM Document # SC34-4290
-
- SAA - A Guide for Evaluating Applications
- IBM 1991 IBM Document # G320-9803
-
-
- ---
-
- 3.3)+ What are the "blue book", "purple book", etc?
-
- Answer:
-
- Date: Wed, 11 Nov 92 12:52:39 PST
- From: khaw@parcplace.com (Mike Khaw)
-
-
- blue
- Goldberg, Adele, and David Robson, _Smalltalk-80: The Language
- and Its Implementation_, Addison-Wesley, 1983. ISBN
- 0-201-11371-6. *Out of print*
-
- orange
- Goldberg, Adele, _Smalltalk-80: the Interactive Programming
- Environment_, Addison-Wesley, 1984. ISBN 0-201-11372-4.
-
- green
- Krasner, Glenn, ed., _Smalltalk-80: Bits of History, Words of
- Advice_, Addison-Wesley, 1983, ISBN 0-201-11669-3
-
- purple
- Goldberg, Adele, and David Robson, _Smalltalk-80: The Language_,
- Addison-Wesley, 1989, ISBN 0-201-13688-0
-
- The books are actually cream or tan. The color referred to is the color
- used as the background of the illustration on the front cover (as well
- as for the Addison-Wesley logo on the spine).
-
- The purple book is an update/revision of the blue book, with the
- section on the abstract bytecode machine omitted (because it was out
- of date, according to Adele).
- ----------
-
- Mike
-
-
- ---
-
- 4.0)+ [Programming issues]
-
- ---
-
- 4.1)+ What are some "classic Smalltalk bugs", both in the
- system and programmer domains?
-
- Answer:
-
- Newsgroups: comp.lang.smalltalk
- From: johnson@m.cs.uiuc.edu (Ralph Johnson)
- Subject: catalog of classic bugs
- Summary: version 1 of the catalog of classic Smalltalk bugs
- Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
- Date: Wed, 12 Aug 1992 22:29:16 GMT
-
- Classic Smalltalk Bugs
-
- compiled by Ralph Johnson -- University of Illinois at Urbana-Champaign
-
- Every programming system is prone to certain kinds of bugs. A good
- programmer learns these bugs, and how to avoid them. Smalltalk is
- no different. Smalltalk eliminates lots of bugs that are common in
- other languages, such as bugs in linear search algorithms. (Just use do:)
- However, it has its own set of classic bugs, which every new Smalltalk
- programmer runs into.
-
- There are several reasons to collect classic bugs. The first is that
- it will help experienced programmers test and debug programs, and can
- help us design better programs in the first place. Second, if we
- teach these bugs up front then people should learn to be good
- programmers faster. Third, perhaps we can redesign the system to
- eliminate some of these bugs, or we can write checking tools to
- spot them automatically.
-
- Bug 1: Variable-sized classes
-
- Set, Dictionary, and OrderedCollection are variable-sized classes
- that grow. They grow by making a copy of themselves and "becoming"
- the copy. If you add new instance variables to a subclass then
- you have to make sure that these instance variables get copied, too,
- or else you will mysteriously lose the values of the instance
- variables at random points in time.
-
- Smalltalk-80 R4.0 (and probably some earlier versions) has a
- copyEmpty: method in Collection that you are supposed to override
- if you make a subclass of Collection that adds instance varaibles.
- The solution to this bug is to write a version of copyEmpty: for
- your class.
-
- It has been suggested that it would be easy to write a tool that
- checked that every new subclass of Collection that added instance
- variables also defined a method for copyEmpty:.
-
- Collection bugs
-
- Bug 2: add: returns its argument
-
- For every collection that grows, add: returns its argument,
- not the receiver, and people usually assume that it returns
- its receiver. Thus, they write "(c add: x) add: y" when they should
- really write "c add: x; add: y" or else "c add: x. c add: y".
- Note that this is one of the good uses for "yourself", you can write
- (Set new
- add: x;
- add: y;
- ...;
- yourself)
- to make sure that you have the new Set.
-
- Note that there are good reasons why add: returns its arguments,
- and even if there weren't, it is a very, very bad mistake to
- implement add: so that it returns the receiver, and so confuse
- every other Smalltalk programmer on the planet.
- Making add: return its argument often keeps you from resorting
- to temps, because you can create the argument to add: on the
- fly, and then do other things with it after the add:. If you
- want to access the collection, you can do it with yourself or
- cascaded messages, as described above.
-
- Bug 3: changing collection while iterating over it
-
- You should never, never, never iterate over a collection which
- the iteration loop somehow modifies. Elements of the collection
- will be moved during the iteration, and elements might be missed
- or handled twice. Instead, make a copy of the collection you
- are iterating over, i.e.
- aCollection copy do: [:each | aCollection remove: each]
- is a good program, but if you leave out the copy then it isn't.
-
- Mario Wolczko suggested a solution that catches this problem the
- instance it occurs (at some performance penalty of course). The
- solution is to change the collection classes. Each iteration method
- enters that collection into a set of collections being iterated over
- (IteratedCollections), executes the block, then removes the collection
- from the set. Collections are usually (only?) modified using at:put:
- or basicAt:put:, so these are overriden to check that the collection
- is not in IteratedCollections. If it is, an error is signalled. You
- can either use this technique all the time, or you can just install
- these classes when you are testing and debugging your program. These
- changes are packaged in a file Iterator-check.st that is available on
- the Manchester and Illinois servers. On the Illinois server, it is
- in /pub/MANCHESTER/manchester/4.0/Iterator-check.st.
-
- Bug 4: modifying copies of collections
-
- It is common for an object to have an accessing method that returns a
- collection of objects that you can modify. However, sometimes
- an object will return a copy of this collection to keep you from
- modifying it. Instead, you are probably supposed to use messages
- that will change the collection for you. The problem is that this
- is often poorly documented, and a person who likes to modify collections
- directly will run into problems. See "ScheduledControllers
- scheduledControllers" for an example.
-
- The solution is to either provide better documentation, to claim
- that nobody is allowed to modify copies of collections returned
- from other objects, or to have objects that don't want their
- collections modified to return immutable versions of the collections
- that will give an error if you try to modify them.
-
- Bug 5: Missing ^
-
- It is very easy to leave off a return caret on an expression.
- If there is no return at the end of a method, Smalltalk returns
- the receiver of the method. It only takes one missing return
- to mess up a long chain of method invocations.
-
- Bug 6: Class instance creation methods
-
- Writing a correct instance create method is apparently non-trivial.
- The correct way to do it is to have something like
- new
- ^super new init
- where you redefine init in each class to initialize that class's
- instance variables. In turn, init is defined as a class method
- init
- super init "to initialize inherited instance variables"
- "initialize variables that I define"
-
- There are lots of ways to do this wrong. Perhaps the most common
- is to forget the return, i.e. to write
- super new init
- The result is that you have the class where you want the instance of
- the class. This is a special case of bug #?.
-
- Another error is to make an infinite loop by writing
- ^self new init
-
- If Smalltalk doesn't respond when you think it should, press ^C to
- get the debugger. If the debugger shows a stack of "new" messages
- then you know you made this mistake.
-
- Finally, you should only define "new" once for each class hierarchy
- and let subclasses inherit the method. If you redefine it in each
- class then you will reinitialize the new object many times, wasting
- time and perhaps memory.
-
- One way to keep this from happening is to make the "new" method in
- Object send init, and have the "init" method in Object do nothing.
- Of course, sometimes the version of init that you define has arguments,
- and this wouldn't help those cases. It is probably better to rely
- on education to eliminate this kind of error.
-
- Bug 7: Recompiling bugs in Smalltalk/V
-
- It is easy to have references to obsolete objects in Smalltalk/V
- if you change code without cleaning things up carefully. For example,
- the associations whose keys are the referenced names in the Pool
- Dictionary are stored in the CompiledMethods at compile time. If you
- create a new version of the Pool Dictionary and install it by simple
- assignment then the compiled methods still refer to the old associations.
-
- If you substitute a new instance of Dictionary or replace, rather than
- update an association in a pool dictionary, you have to recompile all
- methods using variables scoped to that Pool.
-
- This is is also annoying when using ENVY, where the methods are under
- strict control. Perhaps Pool Dictionaries should be be first-class
- versioned pre-requisites of Classes, just like the class definition.
-
- BTW we are using/VPM 1.4 with ENVY 1.3
-
- 1. If you prune & graft a subtree of your class structure you have to
- make sure that all referencing methods are recompiled. Otherwise you
- will run (or your customer, because this is only detected at run time)
- into an Deleted class error message.
- Thomas Muhr posted a "Bite" a while ago to handle this problem for
- Smalltalk/V 286.
-
- Bug 8: Opening windows
-
- Neither Smalltalk-80 nor Smalltalk-V return to the sender when a
- new window is opened in a standard fashion. Thus, any code after
- a message to open a window will never be executed. This is the
- cause of much frustration. For example, if you try to open two
- windows at once, i.e.
-
- TextPane new open.
- TextPane new open
-
- is Smalltalk-V and
-
- aScheduledWindow1 open.
- aScheduledWindow2 open
-
- in Smalltalk-80, then you will get only one open window,
- and one forgotten piece of code.
-
- I don't know the fix for Smalltalk-V. The fix for Smalltalk-80 is
- to use the openNoTerminate method to open the window, which does
- not transfer control to it. A useful trick is to store the new
- window in a global variable so you can test it. In earlier
- versions of Smalltalk-80, open would obliterate the current
- process, not just never return to it. In Version 4.1 that
- never happens.
-
- Bug 9: blocks
-
- Blocks are very powerful, and it isn't hard for programmers to get
- into trouble trying to be too tricky. To compound problems, the
- two versions of Smalltalk have slightly different semantics for
- blocks, and one of them often leads to problems.
-
- Originally blocks did not have truly local variables. The block
- parameters were really local variables in the enclosing method.
- Thus,
-
- | x y |
- x := 0.
- (1 to: 100) do: [:z | x := x + z]
-
- actually had three temporaries, x, y, and z. This leads to bugs
- like the following
-
- someMethod
-
- | a b |
- a := #(4 3 2 1).
- b := SortedCollection sortBlock: [:a :b | a someOperation: b].
- b addAll: a.
- Transcript show: a.
-
- When elements are added to b, the sortBlock is used to tell where
- to put them, but this will change a and b. addAll: is OK, but
- the "a" that gets displayed on the transcript will be an integer,
- not an array.
-
- Early versions of Smalltalk-80 (2.4 and before?) implemented blocks
- like this, and Smalltalk/V still does. However, in current PPS
- implementations, blocks are close to being closures. You can declare
- variables local to a block, and the names of the block parameters are
- local to the block. Most people agree that this is a much better
- definition of blocks than the original one. Nevertheless, people
- planning to use Smalltalk/V should realise that it has a different
- semantics for blocks.
-
- This difference can lead to some amusing problems. For example, here
- is some code written by someone who had obviously learned Scheme.
-
- | anotherArray aBlockArray |
-
- aBlockArray := Array new: 4.
- anotherArray := #(1 2 4 8).
-
- 1 to: 4 do: [ :anIndex |
- aBlockArray at: anIndex put: [ (anotherArray at: anIndex) * 2 ]].
-
-
- The programmer expected that each block would be stored in the array
- along with its own value of anIndex. If anIndex were just a local
- variable of the method then this will not work. It assumes that
- each execution of the block gets its own version of anIndex, and
- Smalltalk/V and old Smalltalk-80 actually make each execution share
- the same version.
-
- So, if you are using Smalltalk/V then be careful not to reuse the
- names of arguments of blocks unless you know that the blocks are
- not going to have their lives overlap. Thus,
-
- aCollect do: [:i | ...].
- bCollect do: [:i | ...].
-
- is probably OK because do: does not store its argument, so the
- blocks will be garbage by the time the method is finished.
- However, if the first block were stored in a variable somewhere
- and evaluated during the execution of the second block then
- problems would probably occur.
-
- Bug 10: Smalltalk/V class library
- Thomas Muhr makes these comments about bugs in the Smalltalk/V
- class library that you should know if you want to keep your
- programs fast and correct.
-
- 2. Never use symbols to label objects if you are dealing with many
- objects. This will slow down your system to an almost dead halt. Use
- strings instead.
- 3. Never use Sets when you can otherwise assure the uniqueness. Look
- at the implementation of "add:" for Sets and you'll know what I mean:
- on every "add:" the new element is compared to all others resulting
- into a nonlinear time for adding to Sets.
- 4. Do not think that if you "collect:" something from a
- SortedCollection, that your result will be sorted as the origin,
- unless you use the default sortBlock. This is one of the bugs provided
- by the language vendor
-
-
-
- Many thanks to the many people who contributed bugs or solutions to bugs
- to the list. These include
-
- muhr@opal.cs.tu-berlin.de (Thomas Muhr)
- steinman@is.morgan.com (Jan Steinman)
- knight@mrco.carleton.ca (Alan Knight)
- mario@cs.man.ac.uk (Mario Wolczko)
- peterg@netcom.com (Peter Goodall)
- Aad Nales <nales@cs.few.eur.nl>
- scrl@otter.hpl.hp.com (Simon Lewis)
- msmith@volcano.ma30.bull.com (Mike Smith)
- dai@mrco.carleton.ca (Naci Dai)
- dcr0@speedy.enet.dec.com (Dave Robbins)
- randy@tigercat.den.mmc.com (Randy Stafford)
- Hubert.Baumeister@mpi-sb.mpg.de (Hubert Baumeister)
- eliot@dcs.qmw.ac.uk (Eliot Miranda)
- dmm@aristotle.ils.nwu.edu (donald)
- amir@is.morgan.com (Amir Bakhtiar)
- Kurt Piersol <Piersol@Apple.com>
- sullivan@ticipa.ti.com (Michael Sullivan)
- terry@zoe.network23.com (Terry)
- brent@uwovax.uwo.ca (Brent Sterner)
- frerk@informatik.uni-kl.de
- nicted@toz.buffalo.ny.us (Nicole Tedesco)
- riks@ogicse.ogi.edu (Rik Fischer Smoody)
- marten@feki.toppoint.de (Marten Feldtmann)
-
- Comments and additions are welcome. Please post to comp.lang.smalltalk
- or e-mail to johnson@cs.uiuc.edu.
-
- ---
-
- End of Smalltalk FAQ
-
- Xref: bloom-picayune.mit.edu alt.privacy:5256 misc.legal:54792 news.answers:4745 alt.society.civil-liberty:7994 comp.society.privacy:855
- Path: bloom-picayune.mit.edu!senator-bedfellow.mit.edu!senator-bedfellow.mit.edu!usenet
- From: hibbert@xanadu.com (Chris Hibbert)
- Newsgroups: alt.privacy,misc.legal,news.answers,alt.society.civil-liberty,comp.society.privacy
- Subject: Social Security Number FAQ
- Supersedes: <ssn-privacy_723794529@athena.mit.edu>
- Followup-To: alt.privacy
- Date: 22 Dec 1992 06:02:26 GMT
- Organization: Massachvsetts Institvte of Technology
- Lines: 368
- Approved: news-answers-request@MIT.Edu
- Expires: 19 Jan 1993 06:02:09 GMT
- Message-ID: <ssn-privacy_725004129@athena.mit.edu>
- NNTP-Posting-Host: pit-manager.mit.edu
- Keywords: Social Security Number, SSN, privacy
- X-Last-Updated: 1992/12/01
- Last-Modified: Nov 30, 1992
- Last-Modification: retrieving copies of this posting
-
- Archive-Name: ssn-privacy
-
- [I no longer have a way to read usenet news. If you have comments on
- the following, please send them to hibbert@xanadu.com.]
-
-
-
- What to do when they ask for your Social Security Number
-
- by Chris Hibbert
-
- Computer Professionals
- for Social Responsibility
-
-
- Many people are concerned about the number of organizations asking for their
- Social Security Numbers. They worry about invasions of privacy and the
- oppressive feeling of being treated as just a number. Unfortunately, I
- can't offer any hope about the dehumanizing effects of identifying you with
- your numbers. I *can* try to help you keep your Social Security Number from
- being used as a tool in the invasion of your privacy.
-
- Surprisingly, government agencies are reasonably easy to deal with; private
- organizations are much more troublesome. Federal law restricts the agencies
- at all levels of government that can demand your number and a fairly
- complete disclosure is required even if its use is voluntary. There are no
- comparable Federal laws restricting the uses non-government organizations
- can make of it, or compelling them to tell you anything about their plans.
- Some states have recently regulations on collection of SSNs by private
- entities. With private institutions, your main recourse is refusing to do
- business with anyone whose terms you don't like.
-
-
- Short History
-
- Social Security numbers were introduced by the Social Security Act of 1935.
- They were originally intended to be used only by the social security
- program, and public assurances were given at the time that use would be
- strictly limited. In 1943 Roosevelt signed Executive Order 9397 which
- required federal agencies to use the number when creating new record-keeping
- systems. In 1961 the IRS began to use it as a taxpayer ID number. The
- Privacy Act of 1974 required authorization for government agencies to use
- SSNs in their data bases and required disclosures (detailed below) when
- government agencies request the number. Agencies which were already using
- SSN as an identifier before January 1, 1975 were allowed to continue using
- it. The Tax Reform Act of 1976 gave authority to state or local tax,
- welfare, driver's license, or motor vehicle registration authorities to use
- the number in order to establish identities. The Privacy Protection Study
- Commission of 1977 recommended that the Executive Order be repealed after
- some agencies referred to it as their authorization to use SSNs. I don't
- know whether it was repealed, but that practice has stopped.
-
- Several states use the SSN as a driver's license number, while others record
- it on applications and store it in their database. Some states that
- routinely use it on the license will make up another number if you insist.
- According to the terms of the Privacy Act, any that have a space for it on
- the application forms should have a disclosure notice. Many don't, and
- until someone takes them to court, they aren't likely to change. (Though
- New York recently agreed to start adding the notice on the basis of a letter
- written by a reader of this blurb.)
-
- The Privacy Act of 1974 (5 USC 552a) requires that any federal, state, or
- local government agency that requests your Social Security Number has to
- tell you four things:
-
- 1: Whether disclosure of your Social Security Number is required or
- optional,
-
- 2: What law authorizes them to ask for your Social Security Number,
-
- 3: How your Social Security Number will be used if you give it to them,
- and
-
- 4: The consequences of failure to provide an SSN.
-
- In addition, the Act says that only Federal law can make use of the Social
- Security Number mandatory. So anytime you're dealing with a government
- institution and you're asked for your Social Security Number, just look for
- the Privacy Act Statement. If there isn't one, complain and don't give your
- number. If the statement is present, read it. If it says giving your
- Social Security Number is voluntary, you'll have to decide for yourself
- whether to fill in the number.
-
- Private Organizations
-
- The guidelines for dealing with non-governmental institutions are much more
- tenuous. Most of the time private organizations that request your Social
- Security Number can get by quite well without your number, and if you can
- find the right person to negotiate with, they'll willingly admit it. The
- problem is finding that right person. The person behind the counter is
- often told no more than "get the customers to fill out the form completely."
-
- Most of the time, you can convince them to use some other number. Usually
- the simplest way to refuse to give your Social Security Number is simply to
- leave the appropriate space blank. One of the times when this isn't a
- strong enough statement of your desire to conceal your number is when
- dealing with institutions which have direct contact with your employer.
- Most employers have no policy against revealing your Social Security Number;
- they apparently believe that it must have been an unintentional slip that
- you didn't give out your SSN.
-
- Public utilities (gas, electric, phone, etc.) are considered to be private
- organizations under the laws regulating SSNs. Most of the time they ask for
- an SSN, and aren't prohibited from asking for it, but they'll usually relent
- if you insist. Ask to speak to a supervisor, insist that they document a
- corporate policy requiring it, ask about alternatives, ask why they need it
- and suggest alternatives.
-
-
- Lenders and Borrowers (those who send reports to the IRS)
-